前面介紹完了物件導向設計中重要的兩個特性:封裝和繼承,今天要來看最後一個特性,就是所謂的多形。
多形(Polymorphism)是什麼
老樣子,用一個較生活化的例子來說明:
我們每個人在不同的場合,都會扮演著不同的角色,並做出不同的行為。例如:在家裡,我是「女兒」,可以幫忙做家事;在學校裡,我是「學生」,處理各種課業上事務;和朋友出去時,我是「朋友」,一起聊天、娛樂。看似有多個身分,但這些其實全部都是「我」。這就是多形的概念。
具體來說,就是一個父類別的參考可以指向多個子類別的物件,而這些物件雖然使用相同的父類別方法,但實際上會表現出不同的行為。這可以讓軟體在發展和維護時,有充分的彈性,較不會寫死。
舉的例子一樣是延續先前的People、Student、Teacher專案:
到目前為止,我們已經認識完物件導向裡的三個非常重要的特性啦!也默默超過一半的天數了...之後的日子,一樣繼續努力吧~